from urllib.parse import unquote,quote

query='''pageSize=30&product=EFund&DISCOUNT=&SortColumn=SYL_Y&MobileKey=4a69e1fc7d583fe671ad69c95ae6c2b7%7C%7C945235770232353&BUY=true&appType=ttjj&LevelOne=&version=6.3.2&onFundCache=3&Sort=desc&pageIndex=1&FundType=6&CompanyId=&plat=Android&TOPICAL=&ENDNAV=&LevelTwo=&ISABNORMAL=true&DataConstraintType=0&gToken=ceaf-236567466abfda4e2864831ea5645231&ESTABDATE=6&deviceid=4a69e1fc7d583fe671ad69c95ae6c2b7%7C%7C945235770232353'''

dict2 = { "version": "6.3.2", "pageSize": "30", "product": "EFund", "DISCOUNT": "", "CLTYPE": "", "SortColumn": "SYL_Y", "MobileKey": "4a69e1fc7d583fe671ad69c95ae6c2b7||945235770232353", "BUY": "true", "appType": "ttjj", "RISKLEVEL": "", "igggggnoreburst": "true", "RLEVEL_SZ": "5,4,3", "Sort": "desc", "pageIndex": "1", "FundType": "0", "CompanyId": "", "plat": "Android", "TOPICAL": "", "ENDNAV": "", "ISABNORMAL": "true", "DataConstraintType": "0", "gToken": "ceaf-236567466abfda4e2864831ea5645231", "ESTABDATE": "6", "deviceid": "4a69e1fc7d583fe671ad69c95ae6c2b7||945235770232353" }

#字符串转字典
def querystr2dict(query):
    return dict([tuple(i.split('='))for i in unquote(query).split('&')])

# 字典转字符串
def dict2querystr(data):
    return '&'.join(['{}={}'.format(k,quote(v)) for k,v in data.items()])


if __name__ == '__main__':
    print(querystr2dict(query))
